{
 "metadata": {
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  },
  "orig_nbformat": 4,
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.7.10 64-bit ('py37': conda)"
  },
  "interpreter": {
   "hash": "9120dcdecb57952d93b7d57d5cf211306c12cfeee9cbed4a2ed5da3c71931ba0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2,
 "cells": [
  {
   "source": [
    "# Pytorch Tutorial\n",
    "\n",
    "## Chapter 1 --- Quick start"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from torch import nn\n",
    "from torch.utils.data import DataLoader\n",
    "from torchvision import datasets\n",
    "from torchvision.transforms import ToTensor, Lambda, Compose\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz\n",
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz\n",
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz\n",
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz\n",
      "Processing...\n",
      "Done!\n"
     ]
    }
   ],
   "source": [
    "training_data = datasets.FashionMNIST(\n",
    "    root=\"data\",\n",
    "    train=True,\n",
    "    download=True,\n",
    "    transform=ToTensor(),\n",
    ")\n",
    "\n",
    "# Download test data from open datasets.\n",
    "test_data = datasets.FashionMNIST(\n",
    "    root=\"data\",\n",
    "    train=False,\n",
    "    download=True,\n",
    "    transform=ToTensor(),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Shape of X [N, C, H, W]:  torch.Size([64, 1, 28, 28])\nShape of y:  torch.Size([64]) torch.int64\n"
     ]
    }
   ],
   "source": [
    "batch_size = 64\n",
    "\n",
    "# Create data loaders.\n",
    "train_dataloader = DataLoader(training_data, batch_size=batch_size)\n",
    "test_dataloader = DataLoader(test_data, batch_size=batch_size)\n",
    "\n",
    "for X, y in test_dataloader:\n",
    "    print(\"Shape of X [N, C, H, W]: \", X.shape)\n",
    "    print(\"Shape of y: \", y.shape, y.dtype)\n",
    "    break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Using cuda device\n"
     ]
    }
   ],
   "source": [
    "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n",
    "print(\"Using {} device\".format(device))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "class NeuralNetwork(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(NeuralNetwork, self).__init__()\n",
    "        self.flatten = nn.Flatten()\n",
    "        self.linear_relu_stack = nn.Sequential(\n",
    "            nn.Linear(28*28, 512),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(512, 512),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(512, 10),\n",
    "            nn.ReLU()\n",
    "        )\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = self.flatten(x)\n",
    "        logits = self.linear_relu_stack(x)\n",
    "        return logits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "NeuralNetwork(\n  (flatten): Flatten()\n  (linear_relu_stack): Sequential(\n    (0): Linear(in_features=784, out_features=512, bias=True)\n    (1): ReLU()\n    (2): Linear(in_features=512, out_features=512, bias=True)\n    (3): ReLU()\n    (4): Linear(in_features=512, out_features=10, bias=True)\n    (5): ReLU()\n  )\n)\n"
     ]
    }
   ],
   "source": [
    "model = NeuralNetwork().to(device)\n",
    "print (model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "loss_fn = nn.CrossEntropyLoss()\n",
    "optimizer = torch.optim.SGD(model.parameters(), lr=1e-3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "def train(dataloader, model, loss_fn, optimizer):\n",
    "    size = len(dataloader.dataset)\n",
    "    for batch, (X, y) in enumerate(dataloader):\n",
    "        X, y = X.to(device), y.to(device)\n",
    "\n",
    "        # Compute prediction error\n",
    "        pred = model(X)\n",
    "        loss = loss_fn(pred, y)\n",
    "\n",
    "        # Backpropagation\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "        if batch % 100 == 0:\n",
    "            loss, current = loss.item(), batch * len(X)\n",
    "            print(f\"loss: {loss:>7f}  [{current:>5d}/{size:>5d}]\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "def test(dataloader, model, loss_fn):\n",
    "    size = len(dataloader.dataset)\n",
    "    num_batches = len(dataloader)\n",
    "    model.eval()\n",
    "    test_loss, correct = 0, 0\n",
    "    with torch.no_grad():\n",
    "        for X, y in dataloader:\n",
    "            X, y = X.to(device), y.to(device)\n",
    "            pred = model(X)\n",
    "            test_loss += loss_fn(pred, y).item()\n",
    "            correct += (pred.argmax(1) == y).type(torch.float).sum().item()\n",
    "    test_loss /= num_batches\n",
    "    correct /= size\n",
    "    print(f\"Test Error: \\n Accuracy: {(100*correct):>0.1f}%, Avg loss: {test_loss:>8f} \\n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Epoch 1\n",
      "-------------------------------\n",
      "loss: 2.306130  [    0/60000]\n",
      "loss: 2.300177  [ 6400/60000]\n",
      "loss: 2.294454  [12800/60000]\n",
      "loss: 2.289062  [19200/60000]\n",
      "loss: 2.280737  [25600/60000]\n",
      "loss: 2.278254  [32000/60000]\n",
      "loss: 2.279769  [38400/60000]\n",
      "loss: 2.264596  [44800/60000]\n",
      "loss: 2.270436  [51200/60000]\n",
      "loss: 2.265970  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 26.9%, Avg loss: 2.259075 \n",
      "\n",
      "Epoch 2\n",
      "-------------------------------\n",
      "loss: 2.263623  [    0/60000]\n",
      "loss: 2.255417  [ 6400/60000]\n",
      "loss: 2.230461  [12800/60000]\n",
      "loss: 2.235500  [19200/60000]\n",
      "loss: 2.218700  [25600/60000]\n",
      "loss: 2.214103  [32000/60000]\n",
      "loss: 2.212250  [38400/60000]\n",
      "loss: 2.185463  [44800/60000]\n",
      "loss: 2.200662  [51200/60000]\n",
      "loss: 2.179772  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 33.4%, Avg loss: 2.181211 \n",
      "\n",
      "Epoch 3\n",
      "-------------------------------\n",
      "loss: 2.191455  [    0/60000]\n",
      "loss: 2.181031  [ 6400/60000]\n",
      "loss: 2.126152  [12800/60000]\n",
      "loss: 2.134690  [19200/60000]\n",
      "loss: 2.105544  [25600/60000]\n",
      "loss: 2.106472  [32000/60000]\n",
      "loss: 2.091070  [38400/60000]\n",
      "loss: 2.056540  [44800/60000]\n",
      "loss: 2.098284  [51200/60000]\n",
      "loss: 2.045609  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 34.6%, Avg loss: 2.047574 \n",
      "\n",
      "Epoch 4\n",
      "-------------------------------\n",
      "loss: 2.088260  [    0/60000]\n",
      "loss: 2.051791  [ 6400/60000]\n",
      "loss: 1.959950  [12800/60000]\n",
      "loss: 1.969443  [19200/60000]\n",
      "loss: 1.949009  [25600/60000]\n",
      "loss: 1.963265  [32000/60000]\n",
      "loss: 1.925211  [38400/60000]\n",
      "loss: 1.895793  [44800/60000]\n",
      "loss: 1.976340  [51200/60000]\n",
      "loss: 1.879954  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 38.8%, Avg loss: 1.895509 \n",
      "\n",
      "Epoch 5\n",
      "-------------------------------\n",
      "loss: 1.976732  [    0/60000]\n",
      "loss: 1.911265  [ 6400/60000]\n",
      "loss: 1.795934  [12800/60000]\n",
      "loss: 1.799741  [19200/60000]\n",
      "loss: 1.814373  [25600/60000]\n",
      "loss: 1.835660  [32000/60000]\n",
      "loss: 1.765735  [38400/60000]\n",
      "loss: 1.760849  [44800/60000]\n",
      "loss: 1.868549  [51200/60000]\n",
      "loss: 1.728394  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 44.3%, Avg loss: 1.768940 \n",
      "\n",
      "Epoch 6\n",
      "-------------------------------\n",
      "loss: 1.882844  [    0/60000]\n",
      "loss: 1.797301  [ 6400/60000]\n",
      "loss: 1.669782  [12800/60000]\n",
      "loss: 1.664291  [19200/60000]\n",
      "loss: 1.720439  [25600/60000]\n",
      "loss: 1.736662  [32000/60000]\n",
      "loss: 1.640077  [38400/60000]\n",
      "loss: 1.658507  [44800/60000]\n",
      "loss: 1.778322  [51200/60000]\n",
      "loss: 1.595516  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 51.3%, Avg loss: 1.652208 \n",
      "\n",
      "Epoch 7\n",
      "-------------------------------\n",
      "loss: 1.774277  [    0/60000]\n",
      "loss: 1.712871  [ 6400/60000]\n",
      "loss: 1.541573  [12800/60000]\n",
      "loss: 1.548008  [19200/60000]\n",
      "loss: 1.661482  [25600/60000]\n",
      "loss: 1.594043  [32000/60000]\n",
      "loss: 1.501870  [38400/60000]\n",
      "loss: 1.493259  [44800/60000]\n",
      "loss: 1.696159  [51200/60000]\n",
      "loss: 1.503991  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 54.9%, Avg loss: 1.564400 \n",
      "\n",
      "Epoch 8\n",
      "-------------------------------\n",
      "loss: 1.689860  [    0/60000]\n",
      "loss: 1.648123  [ 6400/60000]\n",
      "loss: 1.452812  [12800/60000]\n",
      "loss: 1.462720  [19200/60000]\n",
      "loss: 1.613321  [25600/60000]\n",
      "loss: 1.518402  [32000/60000]\n",
      "loss: 1.429359  [38400/60000]\n",
      "loss: 1.423689  [44800/60000]\n",
      "loss: 1.645525  [51200/60000]\n",
      "loss: 1.447560  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 55.2%, Avg loss: 1.508205 \n",
      "\n",
      "Epoch 9\n",
      "-------------------------------\n",
      "loss: 1.633598  [    0/60000]\n",
      "loss: 1.601906  [ 6400/60000]\n",
      "loss: 1.392730  [12800/60000]\n",
      "loss: 1.403299  [19200/60000]\n",
      "loss: 1.576865  [25600/60000]\n",
      "loss: 1.466015  [32000/60000]\n",
      "loss: 1.380769  [38400/60000]\n",
      "loss: 1.379060  [44800/60000]\n",
      "loss: 1.608114  [51200/60000]\n",
      "loss: 1.409377  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 55.3%, Avg loss: 1.468669 \n",
      "\n",
      "Epoch 10\n",
      "-------------------------------\n",
      "loss: 1.591443  [    0/60000]\n",
      "loss: 1.570002  [ 6400/60000]\n",
      "loss: 1.351550  [12800/60000]\n",
      "loss: 1.360354  [19200/60000]\n",
      "loss: 1.547887  [25600/60000]\n",
      "loss: 1.427377  [32000/60000]\n",
      "loss: 1.346391  [38400/60000]\n",
      "loss: 1.348519  [44800/60000]\n",
      "loss: 1.577823  [51200/60000]\n",
      "loss: 1.380175  [57600/60000]\n",
      "Test Error: \n",
      " Accuracy: 55.4%, Avg loss: 1.439240 \n",
      "\n",
      "Done!\n"
     ]
    }
   ],
   "source": [
    "epochs = 10\n",
    "for t in range(epochs):\n",
    "    print(f\"Epoch {t+1}\\n-------------------------------\")\n",
    "    train(train_dataloader, model, loss_fn, optimizer)\n",
    "    test(test_dataloader, model, loss_fn)\n",
    "print(\"Done!\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Saved PyTorch Model State to model.pth\n"
     ]
    }
   ],
   "source": [
    "torch.save(model.state_dict(), \"model.pth\")\n",
    "print(\"Saved PyTorch Model State to model.pth\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "metadata": {},
     "execution_count": 65
    }
   ],
   "source": [
    "model = NeuralNetwork()\n",
    "model.load_state_dict(torch.load(\"model.pth\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Predicted: \"Ankle boot\", Actual: \"Ankle boot\"\n"
     ]
    }
   ],
   "source": [
    "classes = [\n",
    "    \"T-shirt/top\",\n",
    "    \"Trouser\",\n",
    "    \"Pullover\",\n",
    "    \"Dress\",\n",
    "    \"Coat\",\n",
    "    \"Sandal\",\n",
    "    \"Shirt\",\n",
    "    \"Sneaker\",\n",
    "    \"Bag\",\n",
    "    \"Ankle boot\",\n",
    "]\n",
    "\n",
    "model.eval()\n",
    "x, y = test_data[0][0], test_data[0][1]\n",
    "with torch.no_grad():\n",
    "    pred = model(x)\n",
    "    predicted, actual = classes[pred[0].argmax(0)], classes[y]\n",
    "    print(f'Predicted: \"{predicted}\", Actual: \"{actual}\"')"
   ]
  },
  {
   "source": [
    "## Chapter 2 --- Tensor"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "torch."
   ]
  },
  {
   "source": [
    "Chapter 3 --- DataSet, DataLoader"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from torch import nn\n",
    "from torch.utils.data import DataLoader\n",
    "from torchvision import datasets\n",
    "from torchvision.transforms import ToTensor, Lambda, Compose\n",
    "from torch.utils.data import Dataset\n",
    "from torchvision.io import read_image\n",
    "\n",
    "import os\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz\n",
      "0.0%Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz to data/FashionMNIST/raw/train-images-idx3-ubyte.gz\n",
      "100.0%\n",
      "Extracting data/FashionMNIST/raw/train-images-idx3-ubyte.gz to data/FashionMNIST/raw\n",
      "\n",
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz\n",
      "45.1%Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz to data/FashionMNIST/raw/train-labels-idx1-ubyte.gz\n",
      "100.6%\n",
      "Extracting data/FashionMNIST/raw/train-labels-idx1-ubyte.gz to data/FashionMNIST/raw\n",
      "\n",
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz\n",
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz to data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz\n",
      "100.0%\n",
      "Extracting data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz to data/FashionMNIST/raw\n",
      "\n",
      "Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz\n",
      "79.6%Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz to data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz\n",
      "119.3%Extracting data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz to data/FashionMNIST/raw\n",
      "\n",
      "\n",
      "/home/yiwen/.anaconda3/envs/py37/lib/python3.7/site-packages/torchvision/datasets/mnist.py:498: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /opt/conda/conda-bld/pytorch_1623448265233/work/torch/csrc/utils/tensor_numpy.cpp:180.)\n",
      "  return torch.from_numpy(parsed.astype(m[2], copy=False)).view(*s)\n"
     ]
    }
   ],
   "source": [
    "training_data = datasets.FashionMNIST(\n",
    "    root=\"data\",\n",
    "    train=True,\n",
    "    download=True,\n",
    "    transform=ToTensor()\n",
    ")\n",
    "\n",
    "test_data = datasets.FashionMNIST(\n",
    "    root=\"data\",\n",
    "    train=False,\n",
    "    download=True,\n",
    "    transform=ToTensor()\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 576x576 with 9 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"464.398125pt\" version=\"1.1\" viewBox=\"0 0 457.411765 464.398125\" width=\"457.411765pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n   <cc:Work>\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n    <dc:date>2021-07-02T17:15:54.547287</dc:date>\n    <dc:format>image/svg+xml</dc:format>\n    <dc:creator>\n     <cc:Agent>\n      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n     </cc:Agent>\n    </dc:creator>\n   </cc:Work>\n  </rdf:RDF>\n </metadata>\n <defs>\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 464.398125 \nL 457.411765 464.398125 \nL 457.411765 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g clip-path=\"url(#p8f6841621b)\">\n    <image height=\"128\" id=\"image61d7e4fa4f\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"7.2\" xlink:href=\"data:image/png;base64,\n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\" y=\"-22.224007\"/>\n   </g>\n   <g id=\"text_1\">\n    <!-- T-Shirt -->\n    <g transform=\"translate(51.773879 16.318125)scale(0.12 -0.12)\">\n     <defs>\n      <path d=\"M -0.296875 72.90625 \nL 61.375 72.90625 \nL 61.375 64.59375 \nL 35.5 64.59375 \nL 35.5 0 \nL 25.59375 0 \nL 25.59375 64.59375 \nL -0.296875 64.59375 \nz\n\" id=\"DejaVuSans-84\"/>\n      <path d=\"M 4.890625 31.390625 \nL 31.203125 31.390625 \nL 31.203125 23.390625 \nL 4.890625 23.390625 \nz\n\" id=\"DejaVuSans-45\"/>\n      <path d=\"M 53.515625 70.515625 \nL 53.515625 60.890625 \nQ 47.90625 63.578125 42.921875 64.890625 \nQ 37.9375 66.21875 33.296875 66.21875 \nQ 25.25 66.21875 20.875 63.09375 \nQ 16.5 59.96875 16.5 54.203125 \nQ 16.5 49.359375 19.40625 46.890625 \nQ 22.3125 44.4375 30.421875 42.921875 \nL 36.375 41.703125 \nQ 47.40625 39.59375 52.65625 34.296875 \nQ 57.90625 29 57.90625 20.125 \nQ 57.90625 9.515625 50.796875 4.046875 \nQ 43.703125 -1.421875 29.984375 -1.421875 \nQ 24.8125 -1.421875 18.96875 -0.25 \nQ 13.140625 0.921875 6.890625 3.21875 \nL 6.890625 13.375 \nQ 12.890625 10.015625 18.65625 8.296875 \nQ 24.421875 6.59375 29.984375 6.59375 \nQ 38.421875 6.59375 43.015625 9.90625 \nQ 47.609375 13.234375 47.609375 19.390625 \nQ 47.609375 24.75 44.3125 27.78125 \nQ 41.015625 30.8125 33.5 32.328125 \nL 27.484375 33.5 \nQ 16.453125 35.6875 11.515625 40.375 \nQ 6.59375 45.0625 6.59375 53.421875 \nQ 6.59375 63.09375 13.40625 68.65625 \nQ 20.21875 74.21875 32.171875 74.21875 \nQ 37.3125 74.21875 42.625 73.28125 \nQ 47.953125 72.359375 53.515625 70.515625 \nz\n\" id=\"DejaVuSans-83\"/>\n      <path d=\"M 54.890625 33.015625 \nL 54.890625 0 \nL 45.90625 0 \nL 45.90625 32.71875 \nQ 45.90625 40.484375 42.875 44.328125 \nQ 39.84375 48.1875 33.796875 48.1875 \nQ 26.515625 48.1875 22.3125 43.546875 \nQ 18.109375 38.921875 18.109375 30.90625 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 75.984375 \nL 18.109375 75.984375 \nL 18.109375 46.1875 \nQ 21.34375 51.125 25.703125 53.5625 \nQ 30.078125 56 35.796875 56 \nQ 45.21875 56 50.046875 50.171875 \nQ 54.890625 44.34375 54.890625 33.015625 \nz\n\" id=\"DejaVuSans-104\"/>\n      <path d=\"M 9.421875 54.6875 \nL 18.40625 54.6875 \nL 18.40625 0 \nL 9.421875 0 \nz\nM 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 64.59375 \nL 9.421875 64.59375 \nz\n\" id=\"DejaVuSans-105\"/>\n      <path d=\"M 41.109375 46.296875 \nQ 39.59375 47.171875 37.8125 47.578125 \nQ 36.03125 48 33.890625 48 \nQ 26.265625 48 22.1875 43.046875 \nQ 18.109375 38.09375 18.109375 28.8125 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 20.953125 51.171875 25.484375 53.578125 \nQ 30.03125 56 36.53125 56 \nQ 37.453125 56 38.578125 55.875 \nQ 39.703125 55.765625 41.0625 55.515625 \nz\n\" id=\"DejaVuSans-114\"/>\n      <path d=\"M 18.3125 70.21875 \nL 18.3125 54.6875 \nL 36.8125 54.6875 \nL 36.8125 47.703125 \nL 18.3125 47.703125 \nL 18.3125 18.015625 \nQ 18.3125 11.328125 20.140625 9.421875 \nQ 21.96875 7.515625 27.59375 7.515625 \nL 36.8125 7.515625 \nL 36.8125 0 \nL 27.59375 0 \nQ 17.1875 0 13.234375 3.875 \nQ 9.28125 7.765625 9.28125 18.015625 \nL 9.28125 47.703125 \nL 2.6875 47.703125 \nL 2.6875 54.6875 \nL 9.28125 54.6875 \nL 9.28125 70.21875 \nz\n\" id=\"DejaVuSans-116\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-84\"/>\n     <use x=\"51.958984\" xlink:href=\"#DejaVuSans-45\"/>\n     <use x=\"88.042969\" xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"151.519531\" xlink:href=\"#DejaVuSans-104\"/>\n     <use x=\"214.898438\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"242.681641\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"283.794922\" xlink:href=\"#DejaVuSans-116\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_2\">\n   <g clip-path=\"url(#p60725968ac)\">\n    <image height=\"128\" id=\"imagedd19526fe1\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"164.752941\" xlink:href=\"data:image/png;base64,\n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\" y=\"-22.224007\"/>\n   </g>\n   <g id=\"text_2\">\n    <!-- T-Shirt -->\n    <g transform=\"translate(209.32682 16.318125)scale(0.12 -0.12)\">\n     <use xlink:href=\"#DejaVuSans-84\"/>\n     <use x=\"51.958984\" xlink:href=\"#DejaVuSans-45\"/>\n     <use x=\"88.042969\" xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"151.519531\" xlink:href=\"#DejaVuSans-104\"/>\n     <use x=\"214.898438\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"242.681641\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"283.794922\" xlink:href=\"#DejaVuSans-116\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_3\">\n   <g clip-path=\"url(#pde0e390768)\">\n    <image height=\"128\" id=\"image73a6e865a7\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"322.305882\" xlink:href=\"data:image/png;base64,\n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\" y=\"-22.224007\"/>\n   </g>\n   <g id=\"text_3\">\n    <!-- Trouser -->\n    <g transform=\"translate(364.389761 16.318125)scale(0.12 -0.12)\">\n     <defs>\n      <path d=\"M 30.609375 48.390625 \nQ 23.390625 48.390625 19.1875 42.75 \nQ 14.984375 37.109375 14.984375 27.296875 \nQ 14.984375 17.484375 19.15625 11.84375 \nQ 23.34375 6.203125 30.609375 6.203125 \nQ 37.796875 6.203125 41.984375 11.859375 \nQ 46.1875 17.53125 46.1875 27.296875 \nQ 46.1875 37.015625 41.984375 42.703125 \nQ 37.796875 48.390625 30.609375 48.390625 \nz\nM 30.609375 56 \nQ 42.328125 56 49.015625 48.375 \nQ 55.71875 40.765625 55.71875 27.296875 \nQ 55.71875 13.875 49.015625 6.21875 \nQ 42.328125 -1.421875 30.609375 -1.421875 \nQ 18.84375 -1.421875 12.171875 6.21875 \nQ 5.515625 13.875 5.515625 27.296875 \nQ 5.515625 40.765625 12.171875 48.375 \nQ 18.84375 56 30.609375 56 \nz\n\" id=\"DejaVuSans-111\"/>\n      <path d=\"M 8.5 21.578125 \nL 8.5 54.6875 \nL 17.484375 54.6875 \nL 17.484375 21.921875 \nQ 17.484375 14.15625 20.5 10.265625 \nQ 23.53125 6.390625 29.59375 6.390625 \nQ 36.859375 6.390625 41.078125 11.03125 \nQ 45.3125 15.671875 45.3125 23.6875 \nL 45.3125 54.6875 \nL 54.296875 54.6875 \nL 54.296875 0 \nL 45.3125 0 \nL 45.3125 8.40625 \nQ 42.046875 3.421875 37.71875 1 \nQ 33.40625 -1.421875 27.6875 -1.421875 \nQ 18.265625 -1.421875 13.375 4.4375 \nQ 8.5 10.296875 8.5 21.578125 \nz\nM 31.109375 56 \nz\n\" id=\"DejaVuSans-117\"/>\n      <path d=\"M 44.28125 53.078125 \nL 44.28125 44.578125 \nQ 40.484375 46.53125 36.375 47.5 \nQ 32.28125 48.484375 27.875 48.484375 \nQ 21.1875 48.484375 17.84375 46.4375 \nQ 14.5 44.390625 14.5 40.28125 \nQ 14.5 37.15625 16.890625 35.375 \nQ 19.28125 33.59375 26.515625 31.984375 \nL 29.59375 31.296875 \nQ 39.15625 29.25 43.1875 25.515625 \nQ 47.21875 21.78125 47.21875 15.09375 \nQ 47.21875 7.46875 41.1875 3.015625 \nQ 35.15625 -1.421875 24.609375 -1.421875 \nQ 20.21875 -1.421875 15.453125 -0.5625 \nQ 10.6875 0.296875 5.421875 2 \nL 5.421875 11.28125 \nQ 10.40625 8.6875 15.234375 7.390625 \nQ 20.0625 6.109375 24.8125 6.109375 \nQ 31.15625 6.109375 34.5625 8.28125 \nQ 37.984375 10.453125 37.984375 14.40625 \nQ 37.984375 18.0625 35.515625 20.015625 \nQ 33.0625 21.96875 24.703125 23.78125 \nL 21.578125 24.515625 \nQ 13.234375 26.265625 9.515625 29.90625 \nQ 5.8125 33.546875 5.8125 39.890625 \nQ 5.8125 47.609375 11.28125 51.796875 \nQ 16.75 56 26.8125 56 \nQ 31.78125 56 36.171875 55.265625 \nQ 40.578125 54.546875 44.28125 53.078125 \nz\n\" id=\"DejaVuSans-115\"/>\n      <path d=\"M 56.203125 29.59375 \nL 56.203125 25.203125 \nL 14.890625 25.203125 \nQ 15.484375 15.921875 20.484375 11.0625 \nQ 25.484375 6.203125 34.421875 6.203125 \nQ 39.59375 6.203125 44.453125 7.46875 \nQ 49.3125 8.734375 54.109375 11.28125 \nL 54.109375 2.78125 \nQ 49.265625 0.734375 44.1875 -0.34375 \nQ 39.109375 -1.421875 33.890625 -1.421875 \nQ 20.796875 -1.421875 13.15625 6.1875 \nQ 5.515625 13.8125 5.515625 26.8125 \nQ 5.515625 40.234375 12.765625 48.109375 \nQ 20.015625 56 32.328125 56 \nQ 43.359375 56 49.78125 48.890625 \nQ 56.203125 41.796875 56.203125 29.59375 \nz\nM 47.21875 32.234375 \nQ 47.125 39.59375 43.09375 43.984375 \nQ 39.0625 48.390625 32.421875 48.390625 \nQ 24.90625 48.390625 20.390625 44.140625 \nQ 15.875 39.890625 15.1875 32.171875 \nz\n\" id=\"DejaVuSans-101\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-84\"/>\n     <use x=\"46.333984\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"85.197266\" xlink:href=\"#DejaVuSans-111\"/>\n     <use x=\"146.378906\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"209.757812\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"261.857422\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"323.380859\" xlink:href=\"#DejaVuSans-114\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_4\">\n   <g clip-path=\"url(#pea9ea684b0)\">\n    <image height=\"128\" id=\"imagea74fc5d47b\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"7.2\" xlink:href=\"data:image/png;base64,\n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\" y=\"-175.711066\"/>\n   </g>\n   <g id=\"text_4\">\n    <!-- Shirt -->\n    <g transform=\"translate(57.055754 169.805184)scale(0.12 -0.12)\">\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-104\"/>\n     <use x=\"126.855469\" xlink:href=\"#DejaVuSans-105\"/>\n     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"195.751953\" xlink:href=\"#DejaVuSans-116\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_5\">\n   <g clip-path=\"url(#p37462d0a5b)\">\n    <image height=\"128\" id=\"image4da143a146\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"164.752941\" xlink:href=\"data:image/png;base64,\n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\" y=\"-175.711066\"/>\n   </g>\n   <g id=\"text_5\">\n    <!-- Dress -->\n    <g transform=\"translate(211.811195 169.805184)scale(0.12 -0.12)\">\n     <defs>\n      <path d=\"M 19.671875 64.796875 \nL 19.671875 8.109375 \nL 31.59375 8.109375 \nQ 46.6875 8.109375 53.6875 14.9375 \nQ 60.6875 21.78125 60.6875 36.53125 \nQ 60.6875 51.171875 53.6875 57.984375 \nQ 46.6875 64.796875 31.59375 64.796875 \nz\nM 9.8125 72.90625 \nL 30.078125 72.90625 \nQ 51.265625 72.90625 61.171875 64.09375 \nQ 71.09375 55.28125 71.09375 36.53125 \nQ 71.09375 17.671875 61.125 8.828125 \nQ 51.171875 0 30.078125 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-68\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-68\"/>\n     <use x=\"77.001953\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"115.865234\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"177.388672\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"229.488281\" xlink:href=\"#DejaVuSans-115\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_6\">\n   <g clip-path=\"url(#p4043bdfe64)\">\n    <image height=\"128\" id=\"image9a6d1a97cc\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"322.305882\" xlink:href=\"data:image/png;base64,\n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\" y=\"-175.711066\"/>\n   </g>\n   <g id=\"text_6\">\n    <!-- Ankle Boot -->\n    <g transform=\"translate(353.800699 169.805184)scale(0.12 -0.12)\">\n     <defs>\n      <path d=\"M 34.1875 63.1875 \nL 20.796875 26.90625 \nL 47.609375 26.90625 \nz\nM 28.609375 72.90625 \nL 39.796875 72.90625 \nL 67.578125 0 \nL 57.328125 0 \nL 50.6875 18.703125 \nL 17.828125 18.703125 \nL 11.1875 0 \nL 0.78125 0 \nz\n\" id=\"DejaVuSans-65\"/>\n      <path d=\"M 54.890625 33.015625 \nL 54.890625 0 \nL 45.90625 0 \nL 45.90625 32.71875 \nQ 45.90625 40.484375 42.875 44.328125 \nQ 39.84375 48.1875 33.796875 48.1875 \nQ 26.515625 48.1875 22.3125 43.546875 \nQ 18.109375 38.921875 18.109375 30.90625 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 21.34375 51.125 25.703125 53.5625 \nQ 30.078125 56 35.796875 56 \nQ 45.21875 56 50.046875 50.171875 \nQ 54.890625 44.34375 54.890625 33.015625 \nz\n\" id=\"DejaVuSans-110\"/>\n      <path d=\"M 9.078125 75.984375 \nL 18.109375 75.984375 \nL 18.109375 31.109375 \nL 44.921875 54.6875 \nL 56.390625 54.6875 \nL 27.390625 29.109375 \nL 57.625 0 \nL 45.90625 0 \nL 18.109375 26.703125 \nL 18.109375 0 \nL 9.078125 0 \nz\n\" id=\"DejaVuSans-107\"/>\n      <path d=\"M 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 0 \nL 9.421875 0 \nz\n\" id=\"DejaVuSans-108\"/>\n      <path id=\"DejaVuSans-32\"/>\n      <path d=\"M 19.671875 34.8125 \nL 19.671875 8.109375 \nL 35.5 8.109375 \nQ 43.453125 8.109375 47.28125 11.40625 \nQ 51.125 14.703125 51.125 21.484375 \nQ 51.125 28.328125 47.28125 31.5625 \nQ 43.453125 34.8125 35.5 34.8125 \nz\nM 19.671875 64.796875 \nL 19.671875 42.828125 \nL 34.28125 42.828125 \nQ 41.5 42.828125 45.03125 45.53125 \nQ 48.578125 48.25 48.578125 53.8125 \nQ 48.578125 59.328125 45.03125 62.0625 \nQ 41.5 64.796875 34.28125 64.796875 \nz\nM 9.8125 72.90625 \nL 35.015625 72.90625 \nQ 46.296875 72.90625 52.390625 68.21875 \nQ 58.5 63.53125 58.5 54.890625 \nQ 58.5 48.1875 55.375 44.234375 \nQ 52.25 40.28125 46.1875 39.3125 \nQ 53.46875 37.75 57.5 32.78125 \nQ 61.53125 27.828125 61.53125 20.40625 \nQ 61.53125 10.640625 54.890625 5.3125 \nQ 48.25 0 35.984375 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-66\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-65\"/>\n     <use x=\"68.408203\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"131.787109\" xlink:href=\"#DejaVuSans-107\"/>\n     <use x=\"189.697266\" xlink:href=\"#DejaVuSans-108\"/>\n     <use x=\"217.480469\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"279.003906\" xlink:href=\"#DejaVuSans-32\"/>\n     <use x=\"310.791016\" xlink:href=\"#DejaVuSans-66\"/>\n     <use x=\"379.394531\" xlink:href=\"#DejaVuSans-111\"/>\n     <use x=\"440.576172\" xlink:href=\"#DejaVuSans-111\"/>\n     <use x=\"501.757812\" xlink:href=\"#DejaVuSans-116\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_7\">\n   <g clip-path=\"url(#p434abb1beb)\">\n    <image height=\"128\" id=\"imagec08a1d977a\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"7.2\" xlink:href=\"data:image/png;base64,\niVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAFnElEQVR4nO2dOS+1XRSG9+E1xnBMMQQNESQEDYV/QEQj0RCJRic6f8AvMDVKjWj8AolEIzElaIyJghDzPHvbb6+18p2dE/l83PfVrZ11Hud4r3c/K2uv84g45z4dgSXhu98A+V4oADgUABwKAA4FAIcCgEMBwKEA4FAAcCgAOBQAHAoADgUAhwKAQwHAoQDgUABwKAA4FAAcCgAOBQCHAoBDAcChAOBQAHAoADh/gpL+6LSUlBQvTkxMjPm65ORklZOamqrWHh8fvfjl5UXlRCIR+83+g8/P2N96S0jQ/wfk+5af1cp5e3tTOR8fH178/v4eM8fC+hzyWiGf9fn5Wa1xBwCHAoBDAcChAOBEotGoqh6ysrK8+PLyUr1QFhRWofabkUVoUVGRypGFmVUoW0WoLAytHOtakqenp9g/P+ZVyK+GAoBDAcChAOBE3Bc9JKqqqkqt9ff3e3FDQ4PKsTqBmZmZXmx14mQRZnXCZLfOyrGK16SkJC9eXFxUOYODg1788PCgcn4C3AHAoQDgUABwIr29verG2NPT48V5eXnqhfK+HHJieHt7q3LOzs7UmmxEWfdXefqWnZ2tctLS0v71/Thn1wDp6elenJOTo3IyMjK8eGdnR+XIz3t0dKRyTk5O1Jo8DV1ZWVE5u7u7Xtze3q5y5L/b/Py8yuEOAA4FAIcCgEMBwIk0NzerIrCrq8uLreIpGo16sXViJQusu7s7lWMVj/n5+TFfJxtIIWNTFRUVMXOc0+/bKgJl0WmNu8mGkpVjIT+LNf4mi2Drc8jf0ebmpsrhDgAOBQCHAoAT92GQnC4pKSlROS0tLV48NDSkcmpqatSabFjIxoxzzlVWVnrx/v6+ypH3RVlbOKcbOs45d39/78XWgZW8v1s1iJyaCq0B5O/25uZG5YTUQDJndXVV5XAHAIcCgEMBwKEA4HzZRFC8WFNCExMTXmw1QtbW1ry4uLhY5RQWFnqxnDRyTp+8OafHsq1GmCzUZOHonG4gWc0ya00WpiHTRtb3/mRhPjc3p39+zCuTXw0FAIcCgBP0fADrHhzP9/OtZsX6+rpa6+vr82I5Xeycc01NTV5sTS1tbW15sZw0cs653NxctSYPuqypoevray++uLhQObKWsBpB1lfK5P3cOjCTtYtVy8jPa/2uuQOAQwHAoQDgUABw/tNGkFU4hjzcKITq6mq1Njs768VWs8R6uJOcnJHj5c45V1tb68VWQydkIsiadiooKPDi19dXlSNHzq1TzdLSUi8uLy9XOdwBwKEA4FAAcCgAON9+GmjxVU8BlcjvPDrn3OjoqFrb2NjwYmskTZ7+NTY2qhxZTIY8C8E5566urrzYKvAkVqF4fHzsxW1tbSqHOwA4FAAcCgDO/7IGkFhNlpCTxniRDaPDw0OVc35+7sXWqaJ8T9apnoU8jbSufXBw4MVWs2p8fNyLl5aWVA53AHAoADgUABwKAE5YVfLNhPxZla9kamrKizs7O1WOPOmzGjGyULPGv+rr69Xa9PS0F1sNLIlVBMuxub29PZXDHQAcCgAOBQDnRzSCvorQiSQ5XbSwsKBy5PMITk9PVU5HR4cXLy8vq5zu7m61Zt2rY2GNxQ8PD3vx9va2yuEOAA4FAIcCgEMBwIEqAkORp4/WAxblOHdZWZnKGRsb8+KRkZEveT8W8TbLuAOAQwHAoQDgsAYIYHJyUq0NDAx4sdW8kQ+ztLAmhUP+5GvIc4zkdSy4A4BDAcChAOBQAHB+xETQdzMzM6PWWltbvbiuri6ua4cUatZfA4nnOtZpKHcAcCgAOBQAHAoADjuB4HAHAIcCgEMBwKEA4FAAcCgAOBQAHAoADgUAhwKAQwHAoQDgUABwKAA4FAAcCgAOBQCHAoBDAcChAOBQAHAoADgUABwKAA4FAIcCgPMXJ1KVIJZpUBgAAAAASUVORK5CYII=\" y=\"-329.198125\"/>\n   </g>\n   <g id=\"text_7\">\n    <!-- Sneaker -->\n    <g transform=\"translate(46.757316 323.292243)scale(0.12 -0.12)\">\n     <defs>\n      <path d=\"M 34.28125 27.484375 \nQ 23.390625 27.484375 19.1875 25 \nQ 14.984375 22.515625 14.984375 16.5 \nQ 14.984375 11.71875 18.140625 8.90625 \nQ 21.296875 6.109375 26.703125 6.109375 \nQ 34.1875 6.109375 38.703125 11.40625 \nQ 43.21875 16.703125 43.21875 25.484375 \nL 43.21875 27.484375 \nz\nM 52.203125 31.203125 \nL 52.203125 0 \nL 43.21875 0 \nL 43.21875 8.296875 \nQ 40.140625 3.328125 35.546875 0.953125 \nQ 30.953125 -1.421875 24.3125 -1.421875 \nQ 15.921875 -1.421875 10.953125 3.296875 \nQ 6 8.015625 6 15.921875 \nQ 6 25.140625 12.171875 29.828125 \nQ 18.359375 34.515625 30.609375 34.515625 \nL 43.21875 34.515625 \nL 43.21875 35.40625 \nQ 43.21875 41.609375 39.140625 45 \nQ 35.0625 48.390625 27.6875 48.390625 \nQ 23 48.390625 18.546875 47.265625 \nQ 14.109375 46.140625 10.015625 43.890625 \nL 10.015625 52.203125 \nQ 14.9375 54.109375 19.578125 55.046875 \nQ 24.21875 56 28.609375 56 \nQ 40.484375 56 46.34375 49.84375 \nQ 52.203125 43.703125 52.203125 31.203125 \nz\n\" id=\"DejaVuSans-97\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-83\"/>\n     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-110\"/>\n     <use x=\"126.855469\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"188.378906\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"249.658203\" xlink:href=\"#DejaVuSans-107\"/>\n     <use x=\"303.943359\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"365.466797\" xlink:href=\"#DejaVuSans-114\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_8\">\n   <g clip-path=\"url(#p8efc64b5f0)\">\n    <image height=\"128\" id=\"imageb73b35f3e0\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"164.752941\" xlink:href=\"data:image/png;base64,\n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\" y=\"-329.198125\"/>\n   </g>\n   <g id=\"text_8\">\n    <!-- Dress -->\n    <g transform=\"translate(211.811195 323.292243)scale(0.12 -0.12)\">\n     <use xlink:href=\"#DejaVuSans-68\"/>\n     <use x=\"77.001953\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"115.865234\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"177.388672\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"229.488281\" xlink:href=\"#DejaVuSans-115\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_9\">\n   <g clip-path=\"url(#p8a4fcd187a)\">\n    <image height=\"128\" id=\"imagebf76374454\" transform=\"scale(1 -1)translate(0 -128)\" width=\"128\" x=\"322.305882\" xlink:href=\"data:image/png;base64,\niVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAD90lEQVR4nO2dTUorQRSFK/8xJv47jLoB9+Ey4gKyB8GhS3CYTcSJczfgQBxqIJAQhICgib5xVV3sS8WH1fecb1bFTVvIx82hutJdcc59O6NcX19748FgENVsb29Hc9Vq1RuPRqOoZjgcbra4TKgWlxDLUABwKAA4FACcijMcAlerlTcOw51zzi0Wi2iu2Wx64263G9VUKpUNV5cH7ADgUABwKAA49b9ewP9kvV7/OHbOuVqtFs19fn564+VyGdXs7u5647e3t5Ql/jnsAOBQAHAoADgUABzTITDc0Hl/f1d97vvb3xur1+N/09bWljdmCCSlhAKAQwHAMZ0BQqSNIA3tdjuak04SlRF2AHAoADgUABwKAA5UCAw3eDZBOiVURtgBwKEA4FAAcMxkAM13srQRlHq6N7wZVFbYAcChAOBQAHAoADhmQuDBwUFhzdfXVzQn/VxMs2G0t7enWlfusAOAQwHAoQDgUABwzITAk5OTX7uWJgQeHR392t/7S9gBwKEA4FAAcMxkgH6/X1gjfbdLdwPD5wNI7O/v6xaWOewA4FAAcCgAOBQAHDMh8PDwMOlzqUfFeSycmIACgEMBwDGTAXq9XmGNtMEjbQRJp4RCWq2WbmGZww4ADgUAhwKAQwHAMRMCO51OYY1200dTt7Ozo7pW7rADgEMBwKEA4JjJAOEbPCSkDR5pI0iTATR/rwywA4BDAcChAOBQAHDMhEDNT7W0G0GaB0eFbyMpK+wA4FAAcCgAOBQAHDMhUHq1m4bUY+GNRiPpc7nBDgAOBQCHAoBjJgOkfpen3g3UvoY2d9gBwKEA4FAAcCgAOGZC4Ovra2GN9LTw1BA4mUx0C8scdgBwKAA4FAAcMxng8fGxsEa6YSRlAM2NnpeXF93CMocdABwKAA4FAIcCgGMmBN7f3xfWSL8NXK1W0ZzmWPjd3Z1uYZnDDgAOBQCHAoBTcc6lHaUpAeFNnfl8HtVIN4hqtZo3ll5Lq8kJZYAdABwKAA4FAIcCgGNmIygVKcxZCXga2AHAoQDgUABwKAA4ZkKg9LTwxWLhjdfrddK1Z7NZNBfeWZR2FMsAOwA4FAAcCgCOmQwgPSgyPAYuvTZOyg7L5bKw5vj42BtPp1PVOnODHQAcCgAOBQCHAoBjJgRqHhT58fERzY3H42ju4uKi8Frtdlu3sMxhBwCHAoBDAcAxfSz86enJG9/c3EQ1t7e30dzV1ZU3vry8jGpOT083W1wmsAOAQwHAoQDgUABwzGwESTw8PHhjKfBJhCHw/Pz8t5aUHewA4FAAcCgAOGY2glqtVjTX7/e98fPzc9K1z87OornwQZHSs4bKADsAOBQAHAoADgUA5x/6A7eR92nUQQAAAABJRU5ErkJggg==\" y=\"-329.198125\"/>\n   </g>\n   <g id=\"text_9\">\n    <!-- Dress -->\n    <g transform=\"translate(369.364136 323.292243)scale(0.12 -0.12)\">\n     <use xlink:href=\"#DejaVuSans-68\"/>\n     <use x=\"77.001953\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"115.865234\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"177.388672\" xlink:href=\"#DejaVuSans-115\"/>\n     <use x=\"229.488281\" xlink:href=\"#DejaVuSans-115\"/>\n    </g>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"p8f6841621b\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"7.2\" y=\"22.318125\"/>\n  </clipPath>\n  <clipPath id=\"p60725968ac\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"164.752941\" y=\"22.318125\"/>\n  </clipPath>\n  <clipPath id=\"pde0e390768\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"322.305882\" y=\"22.318125\"/>\n  </clipPath>\n  <clipPath id=\"pea9ea684b0\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"7.2\" y=\"175.805184\"/>\n  </clipPath>\n  <clipPath id=\"p37462d0a5b\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"164.752941\" y=\"175.805184\"/>\n  </clipPath>\n  <clipPath id=\"p4043bdfe64\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"322.305882\" y=\"175.805184\"/>\n  </clipPath>\n  <clipPath id=\"p434abb1beb\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"7.2\" y=\"329.292243\"/>\n  </clipPath>\n  <clipPath id=\"p8efc64b5f0\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"164.752941\" y=\"329.292243\"/>\n  </clipPath>\n  <clipPath id=\"p8a4fcd187a\">\n   <rect height=\"127.905882\" width=\"127.905882\" x=\"322.305882\" y=\"329.292243\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAckAAAHRCAYAAAABukKHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABFNUlEQVR4nO3debRdVZn3+98EkpC+b0hDAgkJCSApkFYQUCAExItShSCCWPDeAscQdfjeUsHSAkUKtUoRrx3FqxSUUKUUKiolWKASMIZGmiQQCOkT0pC+Twjz/rF3Lmc+81lnr2xOt8/5fsZgDJ55nr322tnz7HnWns+aM8QYBQAAcvu19wkAANBRMUgCAFCAQRIAgAIMkgAAFGCQBACgAIMkAAAFGCSbEUL4fQjhqoKfHRxC2BJC2L+tzwudF30O6Fg63SBZ/RDZ+9+bIYTtTeJLnfzrQggLqz9fFkL4jzLPE2NcEmPsE2Pc08y5FH7gofOgz6Gt7Gtfw9t3QHufQEuLMfbZ+/8hhEWSroox/s7LDSF8VNJlks6MMb4aQhgh6f1v9xxCCEFSeLvHQWOgz6GtlO1rIYQDYoxvtOW5dcRzaAmd7kpyHx0n6bcxxlclKca4Msb4Q5MzNoTweAhhcwjhoRDCEEkKIYwLIcQQwgHV+PchhJtCCI9L2ibpLkmnSvpO9a+877Tdy0IHRp9DiwshnF79VuKzIYSVkn4UQugRQvhWCGFF9b9vhRB6VPOvCCHMMMeIIYQJ1f8/N4Qwt9oHl4cQ/neTvPeFEJ4NIWwIITwRQnhHk58tqp7D85K27u2rjazhX8DbNFPSt0MIyyU9KukvzldZH5Y0XdJSSQ9K+t+SPldwvMuqufNU+at+lKS7Y4z/2grnjsZEn0NrGSFpkKSxqlwAXS/pRElTJUVJv5D0BUn/UOJYd0i6KMb4WAhhoKRDJCmEcIyk/yPpfElPSfqIpF+GECbFGHdWH3uJpPMkvc6VZIOLMd4t6ROSpkn6g6TVIQT7YfSjGOPLMcbtkv5TlQ5X5McxxjkxxjdijLtb5aTR0OhzaEVvSvpSjHFnte9cKunGGOPqGOMaSTeo8kdVGbslTQkh9Isxro8xPlNt/1+SfhBj/HOMcU+M8U5JO1UZjPf6doxxafUcGl6XGSSbVAZuCSFs2dseY/z3GOOZkgZIulrSjSGEaU0eurLJ/2+T1EfFlrbkOaOx0efQxtbEGHc0iUdKWtwkXlxtK+NCSedKWhxC+EMI4aRq+1hJn6l+1bohhLBB0hhz3E7VJ7vMINmkMrBP08nvJj/fHWP8qaTnJR1Z79PUiNGF0OfQxux7v0KVQW2vg6ttkrRVUq+9P6gWkL11oBifjDH+X5KGSfq5Kt9oSJUB8KYY44Am//WKMd7TzHk0tC4zSHqqk9fnhRD6hhD2CyFMl3SEpD+30FOsknRoCx0LnQB9Dm3oHklfCCEMrRZ/fVHS3dWfPSfpiBDC1BDCgZL+ce+DQgjdQwiXhhD6V7/C3yRp77z57ZKuDiGcECp67+3Pbfaq2liXHiRVefOvk7RE0gZJX5N0TYxxRnMP2ge3SvrrEML6EMK3W+iYaGz0ObSVr6hSXPO8pBckPVNtU4zxZUk3SvqdpFck2f53maRFIYRNqkwJfKT6uKdUmZf8jqT1kuZLuqKVX0e7Cmy6DACAr6tfSQIAUIhBEgCAAgySAAAUYJAEAKAAgyQAAAWaXbs1hFBX6et++6Vj75tvvukdO4lbssr2rLPOSuJp06ZlOX/605+SeNasWVnO4MGDs7bp06cn8SGHHJLlfO5z6Spj69atKz7ZfWT/bb1/t5b6t4wxtsuuEvX2u0YwZMiQJD788MOznL5981vOxo4dm8Tf//73W+R87O+h1LK/i/Voj37XqH3u0EPTW2L79euX5bzxRrp86gEH5B/7vXr1ytp27dqVxAcddFDNY48aNSrL+e1vf5vES5d2vAV5mutzXEkCAFCAQRIAgAIMkgAAFGCQBACgQLPL0rXUZHa9xQHjxo3L2mwRzjHHHJPlXHTRRUlsJ5elvIBi27ZtWc6ePXYv3LwIp3v37lnOsmXLkvhXv/pVlvOb3/wmiZ966qkspwxvEt57vfWgcGff2H5+/PHHZzndunVL4jFjxmQ5I0fmuxmNHz8+ib33+Nprry11nh0dhTvl/eu/pntrT5kyJcuxfWz+/PlZzumnn561zZ07N4m9Asz77rsviW3/lqRHH300iX/3u99lOe2Nwh0AAOrAIAkAQAEGSQAACjS7mEBL8eYfJ0yYkMR///d/n+V4N6b27t07ib0b/letWpXE3nfpq1evTmJvjsfeTCtJPXr0SGJvTtDmeIsZvPe9703i1157Lct5+OGHs7Y77rgjiVtq/hH7xr7HkjR8+PAk9ua0FyxYkMTeYhRLlizJ2mx/Xb9+fZbzjne8I4n79OmT5QwaNCiJZ8+eneUsWrQoa0PHtHnz5iTesWNHljNnzpwk3r17d5bjzRPazz+7cIGUL3xhz8c7TqPhShIAgAIMkgAAFGCQBACgAIMkAAAF2mQxgalTp2Zt9ibYJ598MsuZPHly1mZvtLa7Ykh5wYRXuGNvevUKYLxj2xvGveIMm7P//vtnOVu3bk1i7wZfb4J9xIgRSXz22WdnOS01Ud5VFxPw3ne7A4LXX2wRw6mnnprl2PfUW2hjw4YNWZstULv77ruznGHDhiWxV7hjC81uvPHGLMcr4rC7jrTm7iEsJlCe3b3IFi1KfnGh9cQTT2RtduEUrwDRfo55vxd/+MMfkth+9ncELCYAAEAdGCQBACjAIAkAQIE2WUzg6quvztrsDa7ewrijR4/O2nbu3JnE3vyb3Z27zEIB3ryhN99oeXMzdg7UO0e7KIK3cMLMmTOzNvvv9LnPfS7L8eaZUN7AgQOzNjvftmbNmizHLkLuzSmfcsopSfz5z38+yzn22GOzto0bNyZxz549sxw7B+n137Vr1yaxnS+SpPPOOy9rs3OSLTX/iPKOOOKIrM1+1s2bNy/LGTBgQBJ77513bLt5g/dZZ/vlwoULsxzb5xoNV5IAABRgkAQAoACDJAAABRgkAQAo0CaFO97u68uXL09ir1jCK06wN8Z6x162bFkSewUMtgCmzKIAnjIFDN7N6baow3v9HjtR7i24gPK899grItu+fXsSe7vP2BuyvYKtlStXJrG3m8df/vKXrM32Ie/5vX5mvfvd7272fCR/EYLp06cn8YMPPljzudCyvEVZbKGOtxCF/YzyChltAZCUFyBu2rQpy9m2bVvNHK+ArZFwJQkAQAEGSQAACjBIAgBQoE3mJO2N81L+vfiBBx6Y5dibWSXppZdeSmJ7k7MknXDCCUk8ceLELKfMXGK9N0zbeS5vgXXb1qtXryzHLpgt5XOydsFz7Jsyiz9L+Zy11zfssby5H7uQvdfvvb5gfxe8HejtsbwbxD/84Q8n8Q9+8IMsx7sh/Nprr01i5iTb3ooVK7I2b8ERy/Zdu1i/JB133HFZm50vnzt3bpbzyiuvNPsYyZ/3biRcSQIAUIBBEgCAAgySAAAUYJAEAKBAqxTujBs3rmaOLW6xu6pL/g3+doGBk08+Ocuxuyhs2bIly7E3ens3YnsFNy3FFn54r9UryikzCT5hwoQktsUieEu9u794bHGNd2O3LbjxitO8RQjsOXkLbdhCnXPOOSfL6dGjRxJ7RTqPPPJI1nbXXXdlbWhbW7duzdpsH/M+H+xCAcOHD89yyuxU5BUS2t8fu+OI5BeiNRKuJAEAKMAgCQBAAQZJAAAKMEgCAFCgVQp3hgwZksTeKvB29XhvpQZvZYhBgwYl8ahRo7KcNWvW1DzHMqvilFHvTiG2UMj+e0h+4Yct4PBW4bA7o1C4U8xb8cZj30Ovv9i+4BUseMUXlrdSjy3wOf/887Ocww8/PIntjjFS/rvprYY1Y8aMrM3+TnnFeYsWLcra0HK8XUBscZ9XXHPMMccksdfnb7jhhqztS1/6UhLbgkBJeuqpp5LYK4BcvHhx1tZIuJIEAKAAgyQAAAUYJAEAKNAqc5J2RXlvHsbufv7qq69mOd58o52vsTvGS+V2aG8pZXYK8eav7Dn2798/y7E3fnuP824qP/roo5P40UcfrXmOXZU3p+zt0l5m8Qc7b7hu3bosx/aFbt26ZTnePOHBBx+cxOPHj89yvJvEax3bex2rV6/O2v74xz8m8amnnprlMCfZurz5Rvt56H2O2M/I0aNHZzl333131nb55ZcnsbdQgJ3f9ObBvc/oRsKVJAAABRgkAQAowCAJAEABBkkAAAq0SuHOSy+9lMS2kETKb7Q+7LDDshyvcMVOVHu7ONjiiDLFNV4BR5mFAjz2+csUh/z0pz/NcqZMmZK1Pfzww0n82GOPZTn2Bl+8pcx76i1+YQtcvOIw2ze9RQHs8x9wQP4rWKbwbOnSpVmbLdyxCwdI0pw5c5LYW7DCs3z58iQ+++yzsxx2CmldXr+wOxx5fc4+rux7/pe//CWJvV1lyjy/V1zYSLiSBACgAIMkAAAFGCQBACjQKnOS9ub1em9m/93vfpe12Rthve/XyyxaXWaesox6Fzi3r+Pmm2/OctauXVv/iaEUb0d2e+O+lM/llVng3GPnh7w5da/Nzv0MGzYsy7E3cns573znO5PYW8zAe347dzpp0qQsB63LLlYh5RsjeAtR2M/DP/3pT6Web+XKlTVzdu7cmcTenGSj40oSAIACDJIAABRgkAQAoACDJAAABVqlcMcWMNRbJDN79uys7ZBDDkniMgUU3vPbnHoXDijD22nB7phQ9oZbW0DhvTbb5v0bdVXeDgiWdxO+fX9swYRU7r2xOV6RmVc4YwuMvIIju0uEtyODXaDC+/ewRUKS9MwzzyTxLbfckuWgdXn9wvZD73fdFvM8+eSTpZ5v4cKFNXPsDh87duyo+fyNhitJAAAKMEgCAFCAQRIAgAKtMidZZg7S3lTtfZfu7cRt5/e8RdBbaqGAllJm3tAueF7Ezp12xpt3W5O3MLjlLVBh+1mZOewyi+Z7C5xv3bo1axs7dmwSz5s3L8s544wzkvjFF1/MclavXp3EM2bMyHI8d9xxR6k8tB5vTtLOAXpz3LaPvfDCC6Wez/6u2IUDpHyu3pvP3rx5c6nn66i4kgQAoACDJAAABRgkAQAowCAJAECBVincKaNMcY13w7blFfyU2WnBPn9LFvvYiXJvp3ur7OR2RytK6oy898IW3PTq1SvLse9zvTvEeDtz2II173fDFhwNHTo0y6l3Zxn7O1WmGA0ta8GCBVlbmcIdW3S2bNmyUs9nfw+8wh27YMWmTZuyHLuDTqPhShIAgAIMkgAAFGCQBACgAIMkAAAF2q1wp4wyO3x4yhQZtJR6CxhskYe3Uwhan9efvPfPFn9571eZnWXscbwcbxUpW3Bz4oknZjnPP/98Eh9//PFZzpIlS7K2Mlqz0A3l2NWSpLxQxyv6sn2u7HtnC3y8YrFRo0Yl8fz582sep9FwJQkAQAEGSQAACjBIAgBQoEPPSXo7XNj5Ro/NqXf+qMx3916OPZZ3zva1efOvaH1l52dsH/J277DH8haxKNN/Pba/eDdtn3LKKUns7chQZk7fwxxk+/MWJendu3cSe31u0aJFSVx24RI7B9mnT58sx+5edNhhh2U5CxcubPZ8OjquJAEAKMAgCQBAAQZJAAAKMEgCAFCgQxfueGwBgVeIUKZwp8xxPPUUPpQpCipbGEEBRfuop+DGK8YqU6Dl9Rd70/jcuXOznHPPPbfmc9VbuGMfRz9se+vXr8/aJk2alMTe7jTe4+rhLVTQt2/fJD7zzDOznGeeeSaJKdwBAKCTYJAEAKAAgyQAAAU69JykNw9UZi7RzsXUm1PPYupSftOvl2Of37tRuMzzsTB6x1FmEYkyi++XWWB9+/btNc/H3ugt+Ytkl8EcZPuzCwdI0rRp05L4tddey3LKfrbU4s1tjh8/vubzr1mzpkWev71wJQkAQAEGSQAACjBIAgBQgEESAIACHbpwx7sZup7CHU+9uzHUo8xiAt6OJ+i4yvSf7t27Z23eLg2WV4xldx3xnn/jxo1JPGLEiLqeHx3Tk08+mbUNHz48iZcvX57l2IUoevTokeXs3Lmz5vPbhQM8XnGRt2NNI+FKEgCAAgySAAAUYJAEAKBAh56TrPcG5jKPK3NTd73PZed9vDlSm9OWc6R4+8rMe5dZYNybI/T6gp2z9uawV6xYkcR28WtJGjhwoH+yNbDAefvzFpBYuXJlEnvz4Lbt6KOPznJmzZpV8/m9ucWePXsm8a5du0o9rpHwyQwAQAEGSQAACjBIAgBQgEESAIACHbpwp8wuHPUU6ZR9rpZ6fi/HFnVQuNNY6n2/yuziUuaGf6+IY926dc0+lyRt3ry55rHROJ577rkknjhxYpZj+8HBBx+c5ZQp3Nm2bVvWZhcP8Ppu//79k9j2046OT2YAAAowSAIAUIBBEgCAAgySAAAUaLfCnTIFL97qEWWOYwtuyuzCUS/v2Hai3FsdxT6Owp3GUqa4xntPyxRseauWlMmxOzl4K/7YHSHQ2B577LEkPuKII2o+ZsCAAXU9l9efevXqlcRecU+j7zzDJzMAAAUYJAEAKMAgCQBAgXabkyyzq4C3g3at4xS11fP8HpvnPVeZHSLs3JBdTb8Ic5edn9d/vEUH6tGtW7cWOQ46BruoxAEH5B/ptj+NGTOmrufy+qX93LKLC0jS66+/XtfzdRR84gIAUIBBEgCAAgySAAAUYJAEAKBAh15MwJuELnOcenbvKPMYL6/eHT42btyYxOvXry/1/GWKgtD6yrwP9d5E7fUXW7jjFeCU+X1p9Bu7kXryySeT2OuXtl+MHTu2rufasmVL1mY/D70Cs5ZauKW9cCUJAEABBkkAAAowSAIAUKDd5iTtvEuZ79K9x3nsd+B24Wcpn5spuyiBPU/v+/Yyu88PGjQoiYcPH57llJkDQNuw/cVbfN/2Ba9P1zsnaB/n/R7YhfS9vll20Qo0BvvZtnjx4ixn0qRJSTx+/Pi6nmvr1q1Zm/2MXr58eV3H7si4kgQAoACDJAAABRgkAQAowCAJAECBdivcsRO+3k7r8+bNy9pOOumkJPZ22bZFFUOGDMly7CS0V+TgtdkCin79+mU5q1atSmK7Ur+UT7Bv2LAhy/G01G4Q2Dd2dwO7i4uU92GvuMcWXnmFPLYAR8qLgLwdcoYOHZrEXt+0/WfcuHFZzqJFi7K2enfNQdvyisVsX12xYkVdx/b6vP0cHzFiRF3H7si4kgQAoACDJAAABRgkAQAo0G5zkrt3766Zc9NNN2VtX/3qV5P45JNPznKOPPLIJJ4yZUqWYxf59RaM9r7f37FjRxLPnTs3y5kzZ04S//GPf8xyVq5cmbWVwZxk+1i7dm3NHDsHWWbBca/feeycoLeoxJIlS5L4/vvvz3LuvffeJPbmHz0srN8Y7r777qxtwoQJSewtrlLGN77xjazNLmqxYMGCuo7dkXElCQBAAQZJAAAKMEgCAFCAQRIAgAKBm4IBAPBxJQkAQAEGSQAACjBIAgBQgEESAIACDJIAABRgkAQAoACDJAAABRgkAQAowCAJAEABBklJIYQrQggzmvn5gyGEj7blOQHAvgghxBDChH39GZrXpQbJEMIpIYQnQggbQwjrQgiPhxCOq/W4GOP0GOOdzRy32UEWXUsIYVEIYXsIYXMIYUO1z10dQuhSv2+oTwjh9yGE9SGEHh3gXK4IIewJIWyp/rcghHBNCx37xyGEr7TEsVpTl/mlDSH0k/QrSbdJGiRplKQbJNW3A+lbx223javRoZ0fY+wraaykf5L0WUl3eIkhhP3b8sTQcYUQxkk6VVKU9P72PZv/359ijH1ijH0k/bWkr4UQ/qq9T6qtdJlBUtJESYox3hNj3BNj3B5jfCjG+PzehBDCN6p/wS0MIUxv0v77EMJV1f+/onoF+s0QwjpJ/yHp+5JOqv6ltaFtXxY6shjjxhjjLyV9SNJHQwhHVv+C/l4I4TchhK2SzgghjAwh3BdCWFPtf9fuPUYI4fgQwlMhhE0hhFUhhH+pth8YQrg7hLC2esX6ZAhheDu9VLSMyyXNlPRjSckUT7Xf/L8hhF9Xv6X4cwhhvHeQ6rdmS0MIZzg/61H9rFtS7U/fDyH0LHNyMcZnJL0oaXKT470/hDCn2gd/H0Jo+rPJ1bYN1Zz3V9v/b0mXSvr76ufmA2Wevz10pUHyZUl7Qgh3hhCmhxAGmp+fIGmepCGSvibpjhBCKDjWCZIWSBom6SOSrtZbf20NaJWzR0OLMc6StEyVqwRJ+rCkmyT1lfSEpAckPafKNxzvlfSpEMK0au6tkm6NMfaTNF7Sf1bbPyqpv6Qxkgar0g+3t/qLQWu6XNK/V/+b5vzRc4kq34ANlDRflT6UqPabeyRdGGN81HmOW1S5aJgqaYIqfe6LZU6uOj01UdJT1Xhi9bk+JWmopN9IeiCE0D2E0E2Vfv2QKp+Vn5D07yGESTHGH1Zf49eqn5vnl3n+9tBlBskY4yZJp6jyNcbtktaEEH7ZpBMujjHeHmPcI+lOSQdJKvqrfEWM8bYY4xsxRj6UUNYKVb7ql6RfxBgfjzG+KekoSUNjjDfGGHfFGBeo0kcvrubuljQhhDAkxrglxjizSftgSROq3448Xe3naEAhhFNU+Xr+P2OMT0t6VZU/ppr6rxjjrBjjG6oMMlPNz/9G0g8lnVv9w8w+R5D0vyR9Osa4Lsa4WdJX9VZf85xYvRLcImmWpLskvVL92Yck/TrG+HCMcbekb0jqKelkSSdK6iPpn6r9+hFVprwuKfHP0WF0mUFSkmKML8YYr4gxjpZ0pKSRkr5V/fHKJnnbqv/bp+BQS1vtJNGZjZK0rvr/TfvQWEkjqx9EG6pf2V+nt/5Iu1KVv95fqn6l+r5q+12Sfivp3hDCihDC16p/vaMxfVTSQzHG16vxT2S+clWTzylJ25R/Rn1KlUH2hYLnGCqpl6Snm/S1/662F5kZYxxQnZMcIekIVQZWqfIZunhvYvWPvqWq9PWRkpZW2/ZaXP1Zw+hSg2RTMcaXVPne/8h6Hl4jBhLVr6lGSdpbBd20zyyVtLD6QbT3v74xxnMlKcb4SozxElW+srpF0s9CCL1jjLtjjDfEGKeo8pf7+1T5ug4NpjoneJGk00IIK0MIKyV9WtLRIYSj9+FQfyPpghDCpwp+/roqX8kf0aSv9a8OgDXFGFdJuk/S3q9HV6jyR97e1xFU+fp/efVnY0xV98HVn0kN8rnZZQbJEMLhIYTPhBBGV+Mxqlz2z2z+kaWskjQ6hNC9BY6FTiSE0K965XevpLsL/sKfJWlTCOGzIYSeIYT9qwU+x1WP8ZEQwtDqX+Qbqo/ZE0I4I4RwVLU6dpMqX7/uaf1XhVZwgSrv3RRVvkKdqkpxzGPatz98Vqgyp31tCOHj9ofVPnS7pG+GEIZJUghhVJP572aFEAZL+oCkOdWm/5R0XgjhvdVvMT6jyh0DT0j6s6StqhTndAshnK7K4Hpv9bGrJB26D6+tXXSZQVLSZlUKbv5crSicKWm2Km/q2/WIKp1mZQjh9VrJ6BIeCCFsVuUq8XpJ/yLpY15idR78fFU+GBeq8tf+v6pSlCNJ50iaU50TulXSxTHGHap89fUzVQbIFyX9QdLdrfR60Lo+KulHMcYlMcaVe/+T9B1Jl4Z9uNUsxrhElYHys6FalW98VpWin5khhE2SfidpUjOH3Fu5v0WVfrZGlSIcxRjnqVK8eJsq/fZ8VW5/2hVj3KXKbSzTqz/7rqTLq9/iSZVboqZUv/b9ednX19ZCjA1xxQsAQJvrSleSAADsEwZJAAAKMEgCAFCAQRIAgALNVkyFEBqyqueSS9IFHZ588sksZ/78+S3yXAMGDMjaLrzwwiS+8858A5E33nijRZ6/NcUYi5bla1WN2u+mTJmSxLYfSnlfKNsPDz/88CS++uqrs5wf//jHSfzss8+WOrblrcbYlgV+7dHvGrXPoWU01+e4kgQAoACDJAAABRgkAQAowCAJAECBZlfcacvJ7O7d82VPd+3albUdfXS61u/3vve9LGfs2LFJvG3btixn1Kh0IfoZM2ZkOTt37szaJkyYkMRvvvlmltOnT7pW8O7du7Ocf/iHf0jie+65J8tpb52xcMcWpZQtSLFFOF/+8pezHNvPvD598MEHJ/GWLVuyHK/fDR48OImXLs03orG/L/vvv3+Wc9111yXxz3/+8yzHU++/Wz0o3EFbo3AHAIA6MEgCAFCAQRIAgAIdZk6y7A3M//M//5PEkydPznJWr15d89j9+vVL4oULF2Y53brlm7zb+c6NGzdmOXYOsn///lmOnXeyN6IXsfNMe/a03vaBXXVO0lsE4JZbbkli28ekfE7QO7ZdRKJHjx5Zzn775X+72vnOMo878MADs5yBAwcm8eWX51sV/v73v695bG8uvqUwJ4m2xpwkAAB1YJAEAKAAgyQAAAUYJAEAKNBuhTv1FgI8/fTTSdyrV68sxxZHeK/RtnnFEvUWUNjiGu+12d1DTjvttCxnwYIFWVtnv6lbav8iCm/XmN69eyfxhg0bshy7eIC304vtC15RmddfbBGZ977bfuc9v+13XuHZCSeckLW1JQp30NYo3AEAoA4MkgAAFGCQBACgwAHt9cRl5tIuuOCCrG3o0KFJvHXr1izHziUecED+Mu1N+Dt27MhyvMUE7A3a3iLWdk7Je357jl/4wheynL/927/N2tpyh/iuylsQ3y4I0bNnzyzHW5i8HmXmKb0cOwfpnaOdt/QWHADwFq4kAQAowCAJAEABBkkAAAowSAIAUKBDF+588IMfrJnj7b5uixy8m7PtIgB2546iY5dZKMB7nGULjrwiJa9wx/IWPGjNHRo6G68Axtu1xb6no0aNynLmz5+fxF4ft++N11fKPK7MrjmHHHJIlmMXQfAWwzjyyCOzttmzZ2dt6Dy8/mR5/fLoo49O4rPPPjvL+frXv17/iTXRXp91XEkCAFCAQRIAgAIMkgAAFGiTOUlv3sXezO8588wzs7bNmzcnsXfDv/3u2vsu3X4H733f7d1oXc8N496CA3ZO0lswe/r06Vnbgw8+mMTMSb49hx12WNbmve+2bdmyZVmO7Yvee2P7XdkFzm0f9h7Xr1+/JP7Zz36W5ZxxxhlJ3KdPnyxn0qRJWRtzkp1Hmfnssq688sok9j4fP//5zyfxzTffXNdzlflca8nXthdXkgAAFGCQBACgAIMkAAAFGCQBACjQJoU7ZSZOjzjiiKzN2+HDTgx7hQfr1q1LYrurvJTvzOEVEnkFHGV2D7GFOtu3b89y7A4N3qT0xz72sazNFu54u8+jPFvsIvk32Nv36+Mf/3iWc9tttyXx2LFjs5xNmzYlcdn3zxYBeQUKdoGDL37xi1nO008/ncTeDjXHH3981nbfffeVOk90fGULWQYPHpzEF154YZazcePGJPY+sw866KAkPv/887Mcr+Bnzpw5Sbxly5aaz++9Nq+Abl9wJQkAQAEGSQAACjBIAgBQgEESAIACbVK4U2alBG/1+DIr1Xg5dhLYK9yxjyuzU4j3/F7hhV1hyCvuscf2insOPvjgrM0WWpR5/jKrG3VVI0aMyNq8YrCBAwcm8cyZM7Mc+x56q0HZ/lN2FxD7vnvFCDbHWxXIFkOceOKJWc6xxx6btaFx2SKvsoU7l112WRLbAhxJOvTQQ5N4zZo1WY4tFuvVq1eWM2TIkKztmGOOSWKvWO2xxx5L4hkzZmQ5b3cFMq4kAQAowCAJAEABBkkAAAq0ypxkPd+BT5s2LWvzvku282venI59XJkbTMvszF10LMueozd/ZOckvRtlBw0alLXZG3Hvv//+us4RFePGjcvavEUkynj99ddr5tj56bLPZft0vYtIPPLII0l8yimnZDkDBgyo69jomMp8Hlx00UVZm53jnjt3bpZjF8zw5iS9zzZr27ZtWdsLL7yQxN5nvZ0/HzlyZJZjz3v16tU1z6cpriQBACjAIAkAQAEGSQAACjBIAgBQoE0WE/DYm/ntzdqSP5m7a9euJPZu2C5z87wt1PEmhb1innoe502clym88F6HvcHXK9x5uzfPdiXeTh3eAhXPPPNMzWPZ993rP7ZQx3suj+1nu3fvrvn8HttfvJ1Chg8fnrXZf6fFixfXfC40jne9611Zm108wPuss4txzJ49u2aOt3CKd2y7qIfd3UmSFi5cWPM41113XRLfcMMNWU5zuJIEAKAAgyQAAAUYJAEAKNBuiwmcddZZSezNSXo3odo5nTLzfWUWE/C+y/aUmXeyz+c9v51v9I7jfXdv5wm8hQrsnGSZc+yqhg0blrV5fWHevHk1j9W/f/8k9v7dyyxUXmYu3Hv/yryndoFz77m8DQHsYtPMSTYubx7a88orryTxpk2bspzXXnstifv165fl2Bv8FyxYkOVs3rw5a7O/T/Z3R8prUrzPzFmzZiWx3WSgFq4kAQAowCAJAEABBkkAAAowSAIAUKBVCnfK3Mxud7MoU4Ai5UUF9d44b4t7yu4CUoZ9LWVem1csYhdOkPKdQbzV+++9995S54m8OEDy369XX3215rEmT56cxBs2bMhybD/zFpUoU7jjLSZgj2V/xyTpgQceSGKvGMLri94CA6hPvYV0vXr1ytq8BVesD3zgA0nct2/fLOell17K2mzfOPLII7OcnTt3JrHd3UiS1q5dm8QHH3xwluMV3NiFAryiIFsA6S0uYx+3rzvocCUJAEABBkkAAAowSAIAUKDdFjg/88wzk9ibf/Pa7KID3iLgZW7mL6PMPGWZm7rrne8s87iLL744a7NzkiwcUMybw/D+vf74xz/WPNaAAQOS+MUXX8xy7JxNvXPqXt+wC0B/4QtfyHLsnKSn7AIHXU1LLcpR7+9jmfnHa665Jmv77ne/m8R2QRJJuuqqq7K2j3/840lsFw6QpJkzZybxmDFjshz7O7Zq1aqaOZJ02GGH1cyxc5ne75M9J/t7WgtXkgAAFGCQBACgAIMkAAAFGCQBACjQJoU748ePz9rsTajezdFeUY7dBcQr7inDFieU2SnE403me+ddS9ldHexE9ahRo/b5ufCWsoU7jz32WBLbwjMp7y9eP7A53s38ZQo7vBx70/bRRx9d8zgvvPBC1mYLJiT/97Ozs++VVxRSZneWlvLud787a5syZUoSDx06NMv51re+lcSf/vSnsxxvUZJPfepTSTxx4sQsxxaief3E/rv16dOnZo6UFyp5Ofbfu8yiLN5iBs3hShIAgAIMkgAAFGCQBACgAIMkAAAF2qRw5/3vf3/WZgtwbCGP5E/Udu/ePYl37NhR1zmVKcqpd+WRegsvLG8S2haD2BWIJOmCCy5I4p///Oc1n6urKrNik5T3s+OOOy7LsbsLeDsi2Pe0zI4fRedk2QIFr//YnSTmz5+f5XgFGt6xOrsyqyG1ZqGO3XXjk5/8ZJbz+uuvJ7H3efhXf/VXSfzoo49mOQ899FDWZlem8XbqsDneDhv2cV6xnFeAaQt3vH9r+/nXs2fPmsf2dv5pDleSAAAUYJAEAKAAgyQAAAXaZE7yvPPOy9rsHGTZuRn7fba3+7vNKTOPWHaXg5aab7Q53k3l3hyAzfPO+5JLLkli5iSLeTc/l9m5fMKECVmbncMq06frXcTCU2YObciQIUlsF0mQ8p3spfoX7Whkdr7rm9/8ZpZj36tFixZlOXaRB1uPIUmDBw+ueT7e/PHJJ5+cxN7v+pYtW5J47ty5Wc7y5cuztkGDBiXx5s2bsxz7Oe7Nw9vPY1tXIvlz3v369cvaLO9z07Kfo968ZXO4kgQAoACDJAAABRgkAQAowCAJAECBNincOfbYY7O2JUuWJHFL3rhvCy/qvXG/DK9YokwBh+VNeNubab1jbd26NcuZPn16zedDhff+lSnc8XZbKFM4YxcvKLtwgD22l2OLGLzzsbtGPPzww8Un20S9xUSN7IMf/GAS9+7dO8tZuHBhzRzLK4BZs2ZN1rZ+/fok9n7Xly1blsQbN27McuzniLcLRpndaOxCFFK53WFsoZL3Wev1L9t/vYIf+7vqnY99bX379i0+WUfX6/kAAJTEIAkAQAEGSQAACrTKnKTdtd3eTCvl3yWXuSnU480f2WN531PbhYDL3sxv55DKfJfuHcfOTXk3GHuLvtsbYb15p3Xr1iWxt0P9c889l7V1RV7/KTMn6d3o7C2WbpWZ26t30Wz7OK9v2L7gLSbgvX6vD3Um48ePz9rsnKR3E779HS2z6II3J+n9/pdZvNv2J7sAgCT16dMnib25Pe+87Wdd2c8oy85lerUWHtsPyzyX9ztoX//q1atLPf9eXEkCAFCAQRIAgAIMkgAAFGCQBACgQKsU7nz4wx9OYq8Qwd5Q6hUZeBPMtuDGuwnfPs7bidpOVHuTyd4O2nYyucwiCN4u9vZGYVtsI/nFRGV2kbCT19dff32Wc9FFF2VtXdGwYcOyNu+macvbtcH2qTLvX9nFBOrh/U7ZXUC8QgfvvO3jOpsTTzwxa7M35o8ePTrLse+Vd8P/ihUraj6/V9xnC3y8zyP7Oep9ZtqdkrwFD8oU09hCIin//bFFMt45eoWU3muzbfazX8rP2+vzBx10UBLbz95auJIEAKAAgyQAAAUYJAEAKNAqc5L2+31vTtB+L+19J+/NDdnv6Z9//vksx84TeIv+XnXVVUnsfd8+bty4rO3www9P4tNPPz3L+a//+q+szbJzWtdcc02Ws2nTpqzNvjbvvO28qfc6UOHdWPzss8/WfNyYMWOyNrtohjdfXWa+scyC+F6ObfPmGydNmpTE3jzPO9/5zqzthRdeqHlOjcxbHMJ+bni/j3b+1vusO+yww5L4+OOPz3Jef/31rM3OnXmfkfYGe29O0PYDr196520/W7wcO2/oLURhF2/3+pzHnrc3b2nHiC1bttR8fu84zeFKEgCAAgySAAAUYJAEAKAAgyQAAAVCc4UEIYS67mq2u59PmzYty/nSl76UxN7O3N4k7IABA5L4kEMOqeMM29+Xv/zlJL788suzHG+BATsx//LLL2c5djEHr3CpjBhj7QqSVlBvv2tNtijGu/l60aJFSeztwF7ruEVtlvd7awsi7O+KlO9kf9JJJ9V8rrbWHv3O63O2wOayyy7LHjd8+PAkXrx4cZZjC2W8xRq8G/ztwgDeAha2UMYrnLF91Svo8m7wt4Vo3ueIPbbXd+05eTuOeIvC2KIk79hlFoWxvwf291SS/vu//7uwz3ElCQBAAQZJAAAKMEgCAFCAQRIAgAKtUrhTj4ceeihrO+qoo7K2P//5z0n86KOPZjm33nprEpcpjvBWj28pU6dOzdomT56cxOecc06Wc9ZZZ2VtN998cxLfdtttb+/kmkHhzlvsSkvPPfdclvPqq68m8b6u7NEcW/zh9Vfb5j2/XVmm7O4etgjJK/5oKR2lcKeMQw89NInf//73ZzlDhw5NYlvsI/mFK7Y/2UIWKV8Fxyuu6dmzZxJ7K/d4RWaDBg1K4jI7xnir+dgc7/PYKxyyhWhewZN9nN3xRCpXXPXNb36Twh0AAPYVgyQAAAUYJAEAKNAqc5L2e2nvOcrshvDrX/86a7Pfp3vfZV9yySU1j91SvO/y7Xf3F154YZZzzDHHJLHdnUGSvvrVr2ZtzzzzTM1zst/517vTfVeYk/Tm7bw+dfLJJyext9OLvfnam2eqV5n31J6399pGjhyZxN5N7N6xy8yJtpT26Hf77bdfzT5X7++R5e2m4c23HXTQQUls5z+lvF8sX748y3nve9+bxN5uJj/4wQ+ytpZ6j21NxrHHHpvleLug2Llc77PWLlRgd4nyHud9hr700kvMSQIAsK8YJAEAKMAgCQBAAQZJAAAK5LPFLaDMhK+dqPZWr7/00kuztm9/+9tJfNhhh+3j2VW0VHGLVxxhC3cmTpyY5dgV/b0bdcsU6XhaqsCgKyj7b2VvwvcKLWyfKrOIhff89S5+YXeN8HJWrlyZxAceeGCWU+Zm89Ys3GkPbfk7U3ZXHlsINnv27Lqe76mnnqrrcS3l2WefbTbu6LiSBACgAIMkAAAFGCQBACjQKnOSZXgL4VrXXntt1mYXlj7kkEPqev6WmpMs8zq8eUt70+uaNWuyHG/ey87devNXzEmWV+bfWJJGjRqVxN77bueVvXm7Mjll3lMvp8wi5Pb1egseeHOS9Cl0VVxJAgBQgEESAIACDJIAABRgkAQAoEC7Fe6U2dnc20H66aefTuJzzjmnxc6pHmVeh7d6/Zw5c5L40UcfzXK8AhKLgoq2sW3btiT2bsK3O7nbBSOk/P2q9/3zCndsEZBXgGP7665du+p6fqCr4EoSAIACDJIAABRgkAQAoECHnpO88847a+Y89thjWVuZxdNbireLvXXLLbdkbX369Eni1atXt9g5obwy758k3XPPPUnszTPbOcm+fftmOXYusXfv3lmOd+x6F62w7ByknWst0tkWNAfK4koSAIACDJIAABRgkAQAoACDJAAABQI3owMA4ONKEgCAAgySAAAUYJAEAKAAgyQAAAUYJAEAKMAgCQBAAQZJAAAKMEgCAFCAQRIAgAIMknUIISwKIZzZ3ucBAGhdDT9IhhBOCSE8EULYGEJYF0J4PIRwXHufF7qu6h9R20MIm0MIG6r98+oQQsP/vqFjos+1nob+Bwwh9JP0K0m3SRokaZSkGyTtbM/zKiOE0G4bXqNNnB9j7CtprKR/kvRZSXd4iSGEfJdlYN/R51pBQw+SkiZKUozxnhjjnhjj9hjjQzHG50MIV4QQZoQQvhFCWB9CWBhCmL73gSGE/iGEO0IIr4UQlocQvrK344QQxocQHgkhrA0hvB5C+PcQwgDvBEIIh1ePfXE1fl8I4dkmf829o0nuohDCZ0MIz0vaykDZ+cUYN8YYfynpQ5I+GkI4MoTw4xDC90IIvwkhbJV0RghhZAjhvhDCmmp/unbvMUIIx4cQngohbAohrAoh/Eu1/cAQwt3VfrohhPBkCGF4O71UdBD0uZbV6IPky5L2hBDuDCFMDyEMND8/QdI8SUMkfU3SHSGEUP3ZnZLekDRB0l9JOlvSVdWfBUk3SxopabKkMZL+0T55COEYSQ9J+kSM8d5q/H8k/Z2kwZJ+IOmXIYQeTR52iaTzJA2IMb7xNl47GkiMcZakZZJOrTZ9WNJNkvpKekLSA5KeU+XbkPdK+lQIYVo191ZJt8YY+0kaL+k/q+0fldRflf45WNLVkra3+otBQ6DPtYyGHiRjjJsknSIpSrpd0poQwi+b/GWzOMZ4e4xxjyqD4kGShld/Pl3Sp2KMW2OMqyV9U9LF1ePOjzE+HGPcGWNcI+lfJJ1mnv5USb+U9NEY46+qbf9L0g9ijH+uXtneqcpXvyc2edy3Y4xLY4ydumPBtUKVaQFJ+kWM8fEY45uSjpI0NMZ4Y4xxV4xxgSr9+eJq7m5JE0IIQ2KMW2KMM5u0D5Y0odrfnq7+TgB70efepoYeJCUpxvhijPGKGONoSUeqcvX3reqPVzbJ21b93z6qfGffTdJr1a8MNqhy1TdMkkIIw0II91a/ht0k6W5VrkabulrSEzHGR5u0jZX0mb3HrB53TPWc9lr6dl8zGtYoSeuq/9+0H4yVNNL0m+sk7f1j70pVphZeqn699b5q+12Sfivp3hDCihDC10II3Vr9VaCR0OfepoYfJJuKMb4k6ceqDJbNWarKFd6QGOOA6n/9YoxHVH9+sypXp++oft3wEVW+gm3qakkHhxC+aY57U5NjDogx9oox3tP0NOt7dWhkoVJxPUrSjGpT036wVNJC02/6xhjPlaQY4ysxxktU+SPuFkk/CyH0jjHujjHeEGOcIulkSe+TdHmbvSh0aPS5ltHQg2S1aOYzIYTR1XiMKnN+M5t7XIzxNVXmEv85hNAvhLBftVhn71eqfSVtkbQhhDBK0v/jHGazpHMkvTuE8E/VttslXR1COCFU9A4hnBdC6Pu2XywaUrV/vU/SvZLujjG+4KTNkrSpWtTVM4Swf7XY4rjqMT4SQhha/ZpsQ/Uxe0IIZ4QQjgqVgrNNqnwVtqf1XxU6Mvpcy2roQVKVgeoESX+uVmzNlDRb0mdKPPZySd0lzZW0XtLPVJmzlCq3kRwjaaOkX0v6L+8AMcYNks6SND2E8OUY41OqzEt+p3rM+ZKuqON1ofE9EELYrMpf7NerMq/9MS+xOmd+vqSpkhZKel3Sv6pSICFV/hibE0LYokpBxcUxxh2SRqjSbzdJelHSH1SZGkDXRJ9rBSFGvv0DAMDT6FeSAAC0GgZJAAAKMEgCAFCAQRIAgAIMkgAAFGh2ge0QAqWvXViM0S6g0CY6Yr8744wzknj16tVZzpw5c9rqdErZb7/8b+DevXsn8datW7OcN998M2t7a8njitasim+PftcR+1w9evTokbWNGTMmiefPn1/XsceNG5e1LVu2LInfeKMxl6Nurs9xJQkAQAEGSQAACjBIAgBQgEESAIACzS5L11kms1EfCnfeMnbs2CQ+66yzspzZs2cn8bx587Kc9evXt8j59O2br5nfq1evJD7ggLwub9OmdOu/zZs3l3o+Cnca11133ZXEl112WV3Hue+++7K2Cy+8sK5jdTQU7gAAUAcGSQAACjBIAgBQgDlJFOoKc5J2rk0qN982cODArO3UU09N4h07dmQ59ubrBQsWZDkHHnhg1jZkyJAkXrt2bZazffv2JB40aFCWs2LFiqyto2FOsmW9/PLLSfz1r389y7n99tuztn/8x39M4o99LN+a0s7VNyrmJAEAqAODJAAABRgkAQAowCAJAECBZncBATq7em+K9xYFsDtseDfqr1y5Mol79uyZ5Rx66KFZm10YYOPGjVmOXWDALi7gqbdwCR2T13dGjBiRxF/84heznFNOOSVrO+ecc5LYKyizhTuLFy8udZ6NhCtJAAAKMEgCAFCAQRIAgALMSQIllFng284BDhs2LMuxj9uwYUOWs3Xr1qytT58+SWwXKpekqVOnJvHSpUuzHHRub7zxRs2c7t27Z20f/OAHs7YtW7bUPJa3YEZnw5UkAAAFGCQBACjAIAkAQAEGSQAAClC4A5RQ5gZ7u6PHxIkTs5xu3bolsXcz/+rVq7M2W5BhjyNJw4cPT+Knn366+GTRKb3++utZW5linm3btmVtdgGLXbt2ZTlr1qzZh7NrTFxJAgBQgEESAIACDJIAABRgTvJtOv3007O22267LYmPOuqoNjqb+nlzY3jL/vvvn8R79uzJcmbPnp3EJ554YpZz2GGHJbE3X/Tmm29mbcuWLUvikSNHZjm7d++ueWx0bt7c4sCBA5N47dq1WY435277vD2O5PfVzoYrSQAACjBIAgBQgEESAIACDJIAABSgcOdt+tCHPpS1HXnkkUk8f/78LGfChAk1j+3tBG5X3beT61I+md6jR4+ax2E3+uaVKVCwN1a//PLLWc6qVauSePv27VmO12Z5N43bnUI8ZXYzQdfj9QP6RgVXkgAAFGCQBACgAIMkAAAFGCQBAChA4c4+2m+/9O+K0047Lct58sknk3jMmDFZzvXXX5/EN910U5Zji2s83uS6Lc4ocxw0r54ihssvvzxrszspdO/ePcuxu4lI0qxZs5L4oosuynJmzJiRxM8//3yp80Tnceihh9bM8fqy/VyTyhWr2efz+m6j40oSAIACDJIAABRgkAQAoABzklXeLhjed/d2t/nBgwdnORs3bkxiO58kSV/5yleS+IILLshyLr744qzt1VdfTeIy8wbeOX7uc59LYu/Gd7w9L774YtZmFxM4/vjjs5w777wza3v22WeT2FtoYsCAATXPyfbpsv0ejeE973lPzRzvM8NbcMTOn3umTZuWxN/73vdqPqbRcCUJAEABBkkAAAowSAIAUIBBEgCAAhTuVJUtVvjEJz6RxG+88UaWc9BBByXxkCFDspyHHnooiUeMGJHleLuH3H333Ul82WWXFZ9slbdjxP3335/EzzzzTM3joHkXXnhhEs+ePTvL2bx5cxL/4he/yHK+/OUvZ212oYDHH388y5k8eXISe4tYLF26NIkp0ulcpkyZUjPH+8zyFrXYvXt3zWONHj263Ik1MK4kAQAowCAJAEABBkkAAAo0/JyktzCvnWdpyXmXq666KomXLFmS5axduzaJBw0alOWMGzcuiQ84IH8rvMWCzz333CT2XtvChQuTeOXKlVmOnYP05i2xb372s58lsbdAxMiRI5P4gQceyHK8RartwgTe4uV2XslbxOKkk05K4kWLFmU59S52jfY3atSomjllPjMlf6EJy/bnzogrSQAACjBIAgBQgEESAIACDJIAABRo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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "labels_map = {\n",
    "    0: \"T-Shirt\",\n",
    "    1: \"Trouser\",\n",
    "    2: \"Pullover\",\n",
    "    3: \"Dress\",\n",
    "    4: \"Coat\",\n",
    "    5: \"Sandal\",\n",
    "    6: \"Shirt\",\n",
    "    7: \"Sneaker\",\n",
    "    8: \"Bag\",\n",
    "    9: \"Ankle Boot\",\n",
    "}\n",
    "\n",
    "figure = plt.figure(figsize=(8, 8))\n",
    "cols, rows = 3, 3\n",
    "for i in range(1, cols * rows + 1):\n",
    "    sample_idx = torch.randint(len(training_data), size=(1,)).item()\n",
    "    img, label = training_data[sample_idx]\n",
    "    figure.add_subplot(rows, cols, i)\n",
    "    plt.title(labels_map[label])\n",
    "    plt.axis(\"off\")\n",
    "    plt.imshow(img.squeeze(), cmap=\"gray\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "class CustomImageDataset(Dataset):\n",
    "    def __init__(self, annotations_file, img_dir, transform=None, target_transform=None):\n",
    "        self.img_labels = pd.read_csv(annotations_file)\n",
    "        self.img_dir = img_dir\n",
    "        self.transform = transform\n",
    "        self.target_transform = target_transform\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.img_labels)\n",
    "\n",
    "    def __getitem__(self, idx):\n",
    "        img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0])\n",
    "        image = read_image(img_path)\n",
    "        label = self.img_labels.iloc[idx, 1]\n",
    "        if self.transform:\n",
    "            image = self.transform(image)\n",
    "        if self.target_transform:\n",
    "            label = self.target_transform(label)\n",
    "        return image, label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_dataloader = DataLoader(training_data, batch_size=64, shuffle=True)\n",
    "test_dataloader = DataLoader(test_data, batch_size=64, shuffle=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Feature batch shape: torch.Size([64, 1, 28, 28])\nLabels batch shape: torch.Size([64])\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 251.565 248.518125\" width=\"251.565pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n   <cc:Work>\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n    <dc:date>2021-07-02T17:19:21.181199</dc:date>\n    <dc:format>image/svg+xml</dc:format>\n    <dc:creator>\n     <cc:Agent>\n      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n     </cc:Agent>\n    </dc:creator>\n   </cc:Work>\n  </rdf:RDF>\n </metadata>\n <defs>\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 248.518125 \nL 251.565 248.518125 \nL 251.565 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \nL 244.365 7.2 \nL 26.925 7.2 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#pdf2c05fd26)\">\n    <image height=\"218\" id=\"imageea6678bdff\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\n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\" y=\"-6.64\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\">\n    <g id=\"xtick_1\">\n     <g id=\"line2d_1\">\n      <defs>\n       <path d=\"M 0 0 \nL 0 3.5 \n\" id=\"md3d45d2d9d\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.807857\" xlink:href=\"#md3d45d2d9d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_1\">\n      <!-- 0 -->\n      <g transform=\"translate(27.626607 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 31.78125 66.40625 \nQ 24.171875 66.40625 20.328125 58.90625 \nQ 16.5 51.421875 16.5 36.375 \nQ 16.5 21.390625 20.328125 13.890625 \nQ 24.171875 6.390625 31.78125 6.390625 \nQ 39.453125 6.390625 43.28125 13.890625 \nQ 47.125 21.390625 47.125 36.375 \nQ 47.125 51.421875 43.28125 58.90625 \nQ 39.453125 66.40625 31.78125 66.40625 \nz\nM 31.78125 74.21875 \nQ 44.046875 74.21875 50.515625 64.515625 \nQ 56.984375 54.828125 56.984375 36.375 \nQ 56.984375 17.96875 50.515625 8.265625 \nQ 44.046875 -1.421875 31.78125 -1.421875 \nQ 19.53125 -1.421875 13.0625 8.265625 \nQ 6.59375 17.96875 6.59375 36.375 \nQ 6.59375 54.828125 13.0625 64.515625 \nQ 19.53125 74.21875 31.78125 74.21875 \nz\n\" id=\"DejaVuSans-48\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_2\">\n     <g id=\"line2d_2\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"69.636429\" xlink:href=\"#md3d45d2d9d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_2\">\n      <!-- 5 -->\n      <g transform=\"translate(66.455179 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 10.796875 72.90625 \nL 49.515625 72.90625 \nL 49.515625 64.59375 \nL 19.828125 64.59375 \nL 19.828125 46.734375 \nQ 21.96875 47.46875 24.109375 47.828125 \nQ 26.265625 48.1875 28.421875 48.1875 \nQ 40.625 48.1875 47.75 41.5 \nQ 54.890625 34.8125 54.890625 23.390625 \nQ 54.890625 11.625 47.5625 5.09375 \nQ 40.234375 -1.421875 26.90625 -1.421875 \nQ 22.3125 -1.421875 17.546875 -0.640625 \nQ 12.796875 0.140625 7.71875 1.703125 \nL 7.71875 11.625 \nQ 12.109375 9.234375 16.796875 8.0625 \nQ 21.484375 6.890625 26.703125 6.890625 \nQ 35.15625 6.890625 40.078125 11.328125 \nQ 45.015625 15.765625 45.015625 23.390625 \nQ 45.015625 31 40.078125 35.4375 \nQ 35.15625 39.890625 26.703125 39.890625 \nQ 22.75 39.890625 18.8125 39.015625 \nQ 14.890625 38.140625 10.796875 36.28125 \nz\n\" id=\"DejaVuSans-53\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_3\">\n     <g id=\"line2d_3\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"108.465\" xlink:href=\"#md3d45d2d9d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_3\">\n      <!-- 10 -->\n      <g transform=\"translate(102.1025 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 12.40625 8.296875 \nL 28.515625 8.296875 \nL 28.515625 63.921875 \nL 10.984375 60.40625 \nL 10.984375 69.390625 \nL 28.421875 72.90625 \nL 38.28125 72.90625 \nL 38.28125 8.296875 \nL 54.390625 8.296875 \nL 54.390625 0 \nL 12.40625 0 \nz\n\" id=\"DejaVuSans-49\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_4\">\n     <g id=\"line2d_4\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"147.293571\" xlink:href=\"#md3d45d2d9d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_4\">\n      <!-- 15 -->\n      <g transform=\"translate(140.931071 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_5\">\n     <g id=\"line2d_5\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"186.122143\" xlink:href=\"#md3d45d2d9d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_5\">\n      <!-- 20 -->\n      <g transform=\"translate(179.759643 239.238437)scale(0.1 -0.1)\">\n       <defs>\n        <path d=\"M 19.1875 8.296875 \nL 53.609375 8.296875 \nL 53.609375 0 \nL 7.328125 0 \nL 7.328125 8.296875 \nQ 12.9375 14.109375 22.625 23.890625 \nQ 32.328125 33.6875 34.8125 36.53125 \nQ 39.546875 41.84375 41.421875 45.53125 \nQ 43.3125 49.21875 43.3125 52.78125 \nQ 43.3125 58.59375 39.234375 62.25 \nQ 35.15625 65.921875 28.609375 65.921875 \nQ 23.96875 65.921875 18.8125 64.3125 \nQ 13.671875 62.703125 7.8125 59.421875 \nL 7.8125 69.390625 \nQ 13.765625 71.78125 18.9375 73 \nQ 24.125 74.21875 28.421875 74.21875 \nQ 39.75 74.21875 46.484375 68.546875 \nQ 53.21875 62.890625 53.21875 53.421875 \nQ 53.21875 48.921875 51.53125 44.890625 \nQ 49.859375 40.875 45.40625 35.40625 \nQ 44.1875 33.984375 37.640625 27.21875 \nQ 31.109375 20.453125 19.1875 8.296875 \nz\n\" id=\"DejaVuSans-50\"/>\n       </defs>\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"xtick_6\">\n     <g id=\"line2d_6\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"224.950714\" xlink:href=\"#md3d45d2d9d\" y=\"224.64\"/>\n      </g>\n     </g>\n     <g id=\"text_6\">\n      <!-- 25 -->\n      <g transform=\"translate(218.588214 239.238437)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"matplotlib.axis_2\">\n    <g id=\"ytick_1\">\n     <g id=\"line2d_7\">\n      <defs>\n       <path d=\"M 0 0 \nL -3.5 0 \n\" id=\"me246a204fd\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n      </defs>\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#me246a204fd\" y=\"11.082857\"/>\n      </g>\n     </g>\n     <g id=\"text_7\">\n      <!-- 0 -->\n      <g transform=\"translate(13.5625 14.882076)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_2\">\n     <g id=\"line2d_8\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#me246a204fd\" y=\"49.911429\"/>\n      </g>\n     </g>\n     <g id=\"text_8\">\n      <!-- 5 -->\n      <g transform=\"translate(13.5625 53.710647)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_3\">\n     <g id=\"line2d_9\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#me246a204fd\" y=\"88.74\"/>\n      </g>\n     </g>\n     <g id=\"text_9\">\n      <!-- 10 -->\n      <g transform=\"translate(7.2 92.539219)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_4\">\n     <g id=\"line2d_10\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#me246a204fd\" y=\"127.568571\"/>\n      </g>\n     </g>\n     <g id=\"text_10\">\n      <!-- 15 -->\n      <g transform=\"translate(7.2 131.36779)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-49\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_5\">\n     <g id=\"line2d_11\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#me246a204fd\" y=\"166.397143\"/>\n      </g>\n     </g>\n     <g id=\"text_11\">\n      <!-- 20 -->\n      <g transform=\"translate(7.2 170.196362)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\n      </g>\n     </g>\n    </g>\n    <g id=\"ytick_6\">\n     <g id=\"line2d_12\">\n      <g>\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#me246a204fd\" y=\"205.225714\"/>\n      </g>\n     </g>\n     <g id=\"text_12\">\n      <!-- 25 -->\n      <g transform=\"translate(7.2 209.024933)scale(0.1 -0.1)\">\n       <use xlink:href=\"#DejaVuSans-50\"/>\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\n      </g>\n     </g>\n    </g>\n   </g>\n   <g id=\"patch_3\">\n    <path d=\"M 26.925 224.64 \nL 26.925 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 244.365 224.64 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 26.925 224.64 \nL 244.365 224.64 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 26.925 7.2 \nL 244.365 7.2 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"pdf2c05fd26\">\n   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"7.2\"/>\n  </clipPath>\n </defs>\n</svg>\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Label: 1\n"
     ]
    }
   ],
   "source": [
    "# Display image and label.\n",
    "train_features, train_labels = next(iter(train_dataloader))\n",
    "print(f\"Feature batch shape: {train_features.size()}\")\n",
    "print(f\"Labels batch shape: {train_labels.size()}\")\n",
    "img = train_features[0].squeeze()\n",
    "label = train_labels[0]\n",
    "plt.imshow(img, cmap=\"gray\")\n",
    "plt.show()\n",
    "print(f\"Label: {label}\")"
   ]
  },
  {
   "source": [
    "## Chapter 4 --- Data Transform "
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from torchvision import datasets\n",
    "from torchvision.transforms import ToTensor, Lambda"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "ds = datasets.FashionMNIST(\n",
    "    root=\"data\",\n",
    "    train=True,\n",
    "    download=True,\n",
    "    transform=ToTensor(),\n",
    "    target_transform=Lambda(lambda y: torch.zeros(10, dtype=torch.float).scatter_(0, torch.tensor(y), value=1))\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ]
}